package com.ts.api.module.channel.service;

import com.ts.api.module.api.entity.bo.ApiBizMatchBO;
import com.ts.api.module.channel.entity.bo.ChannelProductMatchApplyBO;
import com.ts.api.module.channel.entity.bo.ChannelProductMatchBO;
import com.ts.api.module.product.entity.po.ProductApplyFlowPO;
import com.ts.api.module.product.entity.po.ProductPO;
import com.ts.api.module.product.entity.po.ProductPlanPO;

/**
 * 渠道分发
 */
public interface ChannelProductMatchService {

    /**
     * h5/app撞库流程
     *
     * @param onlyMatchAll 只匹配“全流程”
     */
    ChannelProductMatchBO dataExchange(ApiBizMatchBO apiBizMatchBO, boolean onlyMatchAll);

    /**
     * h5/app进件流程
     * @return ChannelProductApplyMatchBO
     */
    ChannelProductMatchApplyBO apply();

    /**
     *  h5/app半流程回调模式进件
     *
     *  @param productPO            成功回调主体
     *  @param productPlanPO        成功回调计划
     *  @param productApplyFlowPO   成功撞库流程
     *  @param phoneMd5             手机号md5
     */
    void callbackNoticeApply(ProductPO productPO, ProductPlanPO productPlanPO, ProductApplyFlowPO productApplyFlowPO, String phoneMd5);

}
